"""
Routing queue
                  \*.orange.* -- Q1 -- C1
P -- X(topic) -- \
                  \lazy.# -- Q2 -- C2

一个消息能通过交换机发送到多个队列，发送机制是通过绑定在交换机上的队列关键字（关键字模糊匹配）
"""


# 获取MQ连接
from pingtai.mqdemo.mqutils import get_connection

connection = get_connection()

# 在连接上创建一个频道CHANNEL
channel = connection.channel()

# 创建模糊匹配类型的exchange。
channel.exchange_declare(exchange='topic_logs', exchange_type='topic')

# 发送消息
channel.basic_publish(exchange='topic_logs',  # 指明用于发布消息的交换机
                      routing_key='[warn].kern',  # 路由键，绑定关键字，将队列变成[warn]日志的专属队列
                      body='Hello World!'  # 生产者要发送的消息
                      )
print("[生产者] send 'Hello World!'")

connection.close()  # 当生产者发送完消息后，可选择关闭连接
